package com.trkj.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.trkj.dao.jpa.IEquipOrderDao;
import com.trkj.dao.jpa.IEquipPlanDAO;
import com.trkj.dao.mybatis.IEpanOrderMapper;
import com.trkj.pojos.EquipOrder;
import com.trkj.pojos.EquipPlan;

@Service
@Transactional
public class EplanOrderService {
	@Autowired
	private IEpanOrderMapper epanOrderMapper;
	@Autowired
	private IEquipOrderDao equipOrderDao;
	@Autowired
	private IEquipPlanDAO equipPlanDAO;
	/**
	 * 查询订单分页
	 * 
	 */
	public Map<String,Object> getEplanOrder(int pageNum,int pageSize){
		Page<EquipOrder> p = PageHelper.startPage(pageNum, pageSize, true);
		List<EquipOrder> list = epanOrderMapper.selectEplanOrderAll();
		
		Map<String,Object> map = new HashMap<>();
		map.put("total", p.getTotal());
		map.put("rows", list);
		return map;
	}
	/**
	 * 添加订单
	 * @param eplan
	 * @param planDetails
	 * @return
	 */
	public boolean addEplanOrder(long eplanId,EquipOrder equipOrder){
		try {	
			//找到计划
			EquipPlan equipPlan = equipPlanDAO.findOne(eplanId);
			equipPlan.setEplanState("已订购");
			//绑定关系
			equipOrder.setEquipPlan(equipPlan);
			//保存订单
			equipOrderDao.save(equipOrder);		
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
	/**
	 * 获取订购订单
	 * @param page
	 * @param rows
	 * @return
	 */
	public Map<String, Object> getBuyEplanOrder(int page, int rows) {
		Page<EquipOrder> p = PageHelper.startPage(page, rows, true);
		List<EquipOrder> list = epanOrderMapper.getBuyEplanOrder();
		Map<String,Object> map = new HashMap<>();
		map.put("total", p.getTotal());
		map.put("rows", list);
		return map;	
	}
	/*public Map<String, Object> SaveSomeEplanOrder(int page, int rows) {
		Page<EquipOrder> p = PageHelper.startPage(page, rows, true);
		List<EquipOrder> list = epanOrderMapper.SaveSomeEplanOrder();
		Map<String,Object> map = new HashMap<>();
		map.put("total", p.getTotal());
		map.put("rows", list);
		return map;	
	}*/
	/**
	 * 修改订单状态为已入库
	 * @param eplanOrder_Id
	 * @return
	 */
	public boolean SetOrderSaveState(String eplanOrder_Id) {
		try {	
			//找到订单
			EquipOrder equipOrder = equipOrderDao.findOne(eplanOrder_Id);
			//绑定关系
			equipOrder.setEorderState("已入库");
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
	/**
	 * 条件查询订单
	 * @param page
	 * @param rows
	 * @param equipOrderId
	 * @param businessName
	 * @param eorderName
	 * @param eorderState
	 * @return
	 */
	public Map<String, Object> getEplanOrderWhere(int page, int rows, String equipOrderId, String businessName,
			String eorderName, String eorderState) {
		Page<EquipOrder> p = PageHelper.startPage(page, rows, true);
		Map<String,Object> where = new HashMap<>();
		where.put("equipOrderId", equipOrderId);
		where.put("businessName", businessName);
		where.put("eorderName", eorderName);
		where.put("eorderState", eorderState);
		
		List<EquipOrder> list = epanOrderMapper.getEplanOrderWhere(where);
		Map<String,Object> map = new HashMap<>();
		map.put("total", p.getTotal());
		map.put("rows", list);
		return map;	
	}
	public Map<String, Object> getBuyOrderWhere(int page, int rows, String equipOrderId, String businessName,
			String eorderName) {
		Page<EquipOrder> p = PageHelper.startPage(page, rows, true);
		Map<String,Object> where = new HashMap<>();
		where.put("equipOrderId", equipOrderId);
		where.put("businessName", businessName);
		where.put("eorderName", eorderName);
		
		
		List<EquipOrder> list = epanOrderMapper.getBuyOrderWhere(where);
		Map<String,Object> map = new HashMap<>();
		map.put("total", p.getTotal());
		map.put("rows", list);
		return map;	
	}
	/**
	 * 删除
	 * @param eplanOrder_Id
	 * @return
	 */
	public boolean SetOrderDeleteState(String eplanOrder_Id) {
		try {	
			//找到订单
			EquipOrder equipOrder = equipOrderDao.findOne(eplanOrder_Id);
			//绑定关系
			equipOrderDao.delete(equipOrder);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
}
